The present invention relates to the field of source code profiling, and more particularly to automatically detecting non-modifying transforms when profiling source code.
When a software developer develops the source code for a software application, developers often use software called a code profiler to analyze the source code and determine characteristics about its performance. Code profilers can monitor certain aspects of the source code as the code executes. These aspects can include, but are not limited to, function execution time, memory allocation of variables and functions, return values, and the like. This data is then presented to the software developer for fine-tuning of the source code. Code profilers can help software developers quickly find areas in source code in which are costly in processing power or memory usage and optimize them for better performance.
One challenge with conventional code profiles is data overload. For example, capturing all inputs and outputs for all functions of an executing application can result in a vast amount of captured data. Capturing and processing this data can be expensive, sometimes prohibitively so. One function that conventional code profilers/debuggers cannot perform is detecting non-modifying transforms, which is currently a manual endeavor. Data overload from captured data (versus expected benefit) is believed to be one reason that this capability is currently lacking.